package com.kobeliu.service;

import com.kobeliu.pojo.Company;
import com.kobeliu.pojo.bo.CreateCompanyBO;
import com.kobeliu.pojo.bo.ModifyCompanyInfoBO;
import com.kobeliu.pojo.bo.QueryCompanyBO;
import com.kobeliu.pojo.bo.ReviewCompanyBO;
import com.kobeliu.pojo.vo.CompanyInfoVO;
import com.kobeliu.pojo.vo.CompanySimpleVO;
import com.kobeliu.utils.PagedGridResult;

import java.util.List;

public interface CompanyService {

    /**
     * 根据全称查询企业
     * @param fullName
     * @return
     */
    Company getByFullName(String fullName);

    /**
     * 创建企业（状态：未发起审核）
     * @param bo
     * @return
     */
    String createNewCompany(CreateCompanyBO bo);

    /**
     * 重新发起审核，修改企业（状态：未发起审核）
     * @param bo
     * @return
     */
    String resetNewCompany(CreateCompanyBO bo);

    /**
     * 根据企业id获取企业信息
     * @param companyId
     * @return
     */
    Company getByCompanyId(String companyId);

    /**
     * 根据企业id获取user表中获取HR人数
     * @param companyId
     * @return
     */
    Long getCountByCompanyId(String companyId);

    /**
     * 审核提交的企业信息
     * @param companyBO
     */
    void commitReviewCompanyInfo(ReviewCompanyBO companyBO);

    /**
     * 根据信息查询company和user的联合信息 list
     * @param bo
     * @param page
     * @param limit
     * @return
     */
    PagedGridResult queryCompanyListPaged(QueryCompanyBO bo,Integer page,Integer limit);

    /**
     * 根据companyId查询联合信息
     * @param companyId
     * @return
     */
    CompanyInfoVO getCompanyInfoVO(String companyId);

    /**
     * 更新审核后的信息
     * @param bo
     */
    void updateReviewInfo(ReviewCompanyBO bo);

    /**
     * 修改company属性
     * @param infoBO
     */
    void updateCompanyInfo(ModifyCompanyInfoBO infoBO);

    /**
     * 根据id获取companyVOs
     * @param companyIds
     * @return
     */
    List<CompanyInfoVO> getList(List<String> companyIds);

    /**
     * 更新es数据
     * @param bo
     */
    void updateAggsUserInfo(ReviewCompanyBO bo);
}
